#include "gpio.h"
#include "tb207a1.h"


void TB207A1_Start(){

	HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4); // right
	HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); // left

}

void TB207A1_Set_Speed(uint16_t right_speed, uint16_t left_speed){

	__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_4, left_speed);  // set arr 0~99
	__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, right_speed);  // set arr

}

void TB207A1_Stop(){
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET); // right
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_13, GPIO_PIN_RESET);

	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_RESET); // left
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15, GPIO_PIN_RESET);
}

void TB207A1_Move_Left(uint8_t is_forward)
{
	if (is_forward)
	{
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET);
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_13, GPIO_PIN_SET);
	}
	else
	{
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET);
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_13, GPIO_PIN_RESET);
	}

}

void TB207A1_Move_Right(uint8_t is_forward)
{
	if (is_forward)
	{
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_SET);
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15, GPIO_PIN_RESET);
	}
	else
	{
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_RESET);
		HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15, GPIO_PIN_SET);
	}

}
